#!/bin/bash

# 检测系统是否被入侵的脚本。
# 该脚本通过查看进程的PID来检测系统中是否存在异常，如果对应目录不存在则认为系统被入侵。脚本执行后没有输出，说明系统没有异常。

pp=$$

ps -elf |sed '1'd > /tmp/pid.txt

# 利用awk排除本脚本的父进程，也就是$5
for pid in `awk -v ppn=$pp '$5!=ppn {print $4}' /tmp/pid.txt `
do
    # 如果不存在/proc/pid目录，则判断进程有异常
    if ! [ -d /proc/$pid ]
    then
        echo "系统中并没有pid为$pid的目录，请检查！！"
    fi
done

#统计总的pid目录数量
awk -v ppn=$pp '$5!=ppn {print $4}' /tmp/pid.txt |wc -l


# 删除临时文件
rm -f /tmp/pid.txt

# 执行脚本 sh -x pid_ex.sh